package com.woniuxy.project.campus.account.service;

import com.woniuxy.project.campus.account.dto.PageInfo;
import com.woniuxy.project.campus.account.dto.ResourceDto;
import com.woniuxy.project.campus.account.dto.UserCartInfo;
import com.woniuxy.project.campus.account.model.form.AccountForm;
import com.woniuxy.project.campus.account.model.form.PageForm;
import com.woniuxy.project.campus.account.model.Account;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.project.campus.account.model.form.UserCartInfoForm;
import com.woniuxy.project.campus.account.param.AddAShoppingCartParam;
import com.woniuxy.project.campus.account.param.LoginParam;
import com.woniuxy.project.campus.account.param.MerchantapplicationParam;
import com.woniuxy.project.campus.account.param.RegisterParam;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 吴彦祖
 * @since 2025年02月17日
 */
public interface AccountService extends IService<Account> {

    void smsRegistration(String mobile) throws Exception;

    void register(RegisterParam param) throws Exception;

    List<ResourceDto> login(LoginParam param, HttpServletResponse response) throws Exception;

    String getUserInfo(Integer id);

    List<MerchantapplicationParam> viewTheApplication(String token);

    Integer getSuperAdminId();

    Account getUserInfoByMobile(String mobile);

    void updateUserInfo(Account account);

    List<Account> getAllRepairPerson();

    Account getUserInfoByToken(Integer token);

    List<Account> getAllUser(String token);


    void addAShoppingCart(AddAShoppingCartParam bean) throws Exception;

    void deleteShoppingCart(AddAShoppingCartParam bean) throws Exception;


    PageInfo<UserCartInfoForm> MyShoppingCart(String token, PageForm form) throws Exception;

    Account getUserInfoById(Integer id);

    void addMerchant(AccountForm accountForm);
}
